package com.hksj.vcm.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hksj.base.entity.Properties;
import com.hksj.base.query.DeviceOverviewQuery;
import com.hksj.base.vo.DeviceVO;
import com.hksj.base.vo.LocationVO;
import com.hksj.common.config.annotation.DS_TAOS;
import com.hksj.common.core.model.BasePageQuery;
import com.hksj.vcm.query.VavDeviceRankQuery;
import com.hksj.vcm.query.VavRecordQuery;
import com.hksj.vcm.query.VavRoomQuery;
import com.hksj.vcm.query.VavRoomRankQuery;
import com.hksj.vcm.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface VavRoomMapper {
    List<VavRoomVO> listRoom(@Param("query") VavRoomQuery query, Page<VavRoomVO> page);

    List<RoomDevicePropertyVO> listRoomDeviceProperty(@Param("query") VavRoomQuery query);

    List<DeviceVO> listDevice(@Param("query") VavRecordQuery query);

    @DS_TAOS
    List<Properties> listRecord(@Param("queryList") List<VavRecordQuery> queryList);

    RoomOverviewVO getRoomOverview(@Param("query") DeviceOverviewQuery query);

    List<VavRoomRankVO> listVavRoomRank(@Param("query") VavRoomRankQuery query);

    List<VavDeviceRankVO> listVavDeviceRank(@Param("query") VavDeviceRankQuery query);

    @DS_TAOS
    List<RoomPropertyVO> pageReportRecord(@Param("queryList") List<VavRecordQuery> queryList , @Param("pageQuery") BasePageQuery pageQuery);

    @DS_TAOS
    Long reportRecordCount(@Param("queryList") List<VavRecordQuery> queryList);

    LocationVO getRoomInfo(@Param("roomId") String roomId);
}
